package xml;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import junit.framework.TestCase;
import dto.xml.XMLArticuloHogarDTO;
import dto.xml.XMLArticuloRopaDTO;
import dto.xml.XMLDetallesHogarDTO;
import dto.xml.XMLDetallesRopaDTO;
import dto.xml.XMLItemPedido2DTO;
import dto.xml.XMLItemPedidoDTO;
import dto.xml.XMLOfadArticuloHogarDTO;
import dto.xml.XMLOfadArticuloRopaDTO;
import dto.xml.XMLOfadDTO;
import dto.xml.XMLOfadHogarDTO;
import dto.xml.XMLOfadRopaDTO;
import dto.xml.XMLPalcDTO;
import dto.xml.XMLPedido2DTO;
import dto.xml.XMLPedidoDTO;
import dto.xml.XMLSolDistDTO;


public class XTest extends TestCase{
	
	public void testSolDistObjectToXML() throws FileNotFoundException {
		XMLParser parser = new XMLParser();
		
		XMLItemPedidoDTO a1 = new XMLItemPedidoDTO(2,25);
		XMLItemPedidoDTO a2 = new XMLItemPedidoDTO(1,30);
		XMLItemPedidoDTO a3 = new XMLItemPedidoDTO(2,25);
		XMLItemPedidoDTO a4 = new XMLItemPedidoDTO(1,30);
		
		List<XMLItemPedidoDTO> articulos = new ArrayList<XMLItemPedidoDTO>();
		articulos.add(a1);
		articulos.add(a2);
		
		List<XMLItemPedidoDTO> articulos2 = new ArrayList<XMLItemPedidoDTO>();
		articulos2.add(a3);
		articulos2.add(a4);
		
		XMLPedidoDTO p1 = new XMLPedidoDTO(1, articulos);
		
		XMLPedidoDTO p2 = new XMLPedidoDTO(2, articulos2);
		
		List<XMLPedidoDTO> pedidos = new ArrayList<XMLPedidoDTO>();
		pedidos.add(p1);
		pedidos.add(p2);
		
		XMLSolDistDTO sd = new XMLSolDistDTO(1228, pedidos);
		
		try {
			parser.generateXmlAndSave(sd);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	
	public void testSolDistXMLToObject() throws FileNotFoundException {
		XMLParser parser = new XMLParser();
		
		String xml = "<solDist><numSolDist>1</numSolDist><envio><idTienda>2</idTienda><articulos><ref>2</ref><cant>21</cant></articulos><articulos><ref>1</ref><cant>11</cant></articulos></envio><envio><idTienda>2</idTienda><articulos><ref>2</ref><cant>21</cant></articulos><articulos><ref>1</ref><cant>11</cant></articulos></envio></solDist>";
		
		XMLSolDistDTO sd = (XMLSolDistDTO) parser.parseToObject(xml);
		
		System.out.println(sd.getNumSolDist());
	}
	
	public void testNuevoArticuloRopaToXML() throws IOException {
		XMLParser parser = new XMLParser();
		
		XMLDetallesRopaDTO detalles = new XMLDetallesRopaDTO(1,"hola", 110, "color1", "linea1", "descripcion1", "talle1", "origen1");
		
		XMLArticuloRopaDTO ar = new XMLArticuloRopaDTO(detalles);
		
		System.out.println(parser.generateXmlAndSave(ar));
	}
	
	public void testNuevoArticuloHogarToXML() throws IOException {
		XMLParser parser = new XMLParser();
		
		XMLDetallesHogarDTO detalles = new XMLDetallesHogarDTO(1,"hola", 110, "color1", "linea1", "descripcion1", "nombre1", "composicion1", "medidas1", "categoria1");
				
		XMLArticuloHogarDTO ah = new XMLArticuloHogarDTO(detalles);
		
		System.out.println(parser.generateXmlAndSave(ah));
	}
	
	public void testPalcToXML() throws FileNotFoundException {
		XMLParser parser = new XMLParser();
		
		XMLItemPedido2DTO item1 = new XMLItemPedido2DTO(2,25);
		XMLItemPedido2DTO item2 = new XMLItemPedido2DTO(1,30);
		XMLItemPedido2DTO item3 = new XMLItemPedido2DTO(2,25);
		
		List<XMLItemPedido2DTO> itemsPedido = new ArrayList<XMLItemPedido2DTO>();
		itemsPedido.add(item1);
		itemsPedido.add(item2);
		itemsPedido.add(item3);
		
		XMLPedido2DTO pedido = new XMLPedido2DTO(itemsPedido);
		
		XMLPalcDTO palc = new XMLPalcDTO(23, pedido);
		
		try {
			parser.generateXmlAndSave(palc);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public void testPalcXMLToObject() throws FileNotFoundException {
		XMLParser parser = new XMLParser();
		
		String xml = "<palc><idTienda>23</idTienda><pedidos><pedido>" +
				"<ref>2</ref><cantidad>25</cantidad></pedido><pedido><ref>1</ref><cantidad>30</cantidad>" +
				"</pedido><pedido><ref>2</ref><cantidad>25</cantidad></pedido></pedidos></palc>";
		
		XMLPalcDTO palc = (XMLPalcDTO) parser.parseToObject(xml);
		
		System.out.println(palc.getidTienda());
	}
	
	public void testOfadToXML() throws IOException {
		XMLParser parser = new XMLParser();
	
		//crear todos los XMLOfadArticuloRopaDTO que hagan falta
		XMLOfadArticuloRopaDTO ar1 = new XMLOfadArticuloRopaDTO(1,"hola", 110, "color1", "linea1", "descripcion1", "talle1", "origen1",30);
		XMLOfadArticuloRopaDTO ar2 = new XMLOfadArticuloRopaDTO(2,"hola2", 220, "color2", "linea2", "descripcion2", "talle2", "origen2",30);
		//crear todos los XMLOfadArticuloHogarDTO que hagan falta
		XMLOfadArticuloHogarDTO ah1 = new XMLOfadArticuloHogarDTO(1,"hola", 110, "color1", "linea1", "descripcion1", "nombre1", "composicion1", "medidas1", "categoria1",60);
		XMLOfadArticuloHogarDTO ah2 = new XMLOfadArticuloHogarDTO(2,"hola", 220, "color2", "linea2", "descripcion2", "nombre2", "composicion2", "medidas2", "categoria2",60);
		
		//Agregarlos a un List de XMLOfadArticuloHogarDTO
		List<XMLOfadArticuloHogarDTO> articulosHogar  = new ArrayList<XMLOfadArticuloHogarDTO>();
		articulosHogar.add(ah1);
		articulosHogar.add(ah2);
		//Agregarlos a un List de XMLOfadArticuloRopaDTO
		List<XMLOfadArticuloRopaDTO> articulosRopa  = new ArrayList<XMLOfadArticuloRopaDTO>();
		articulosRopa.add(ar1);
		articulosRopa.add(ar2);
		
		
		XMLOfadHogarDTO hogar = new XMLOfadHogarDTO(articulosHogar);
		XMLOfadRopaDTO ropa = new XMLOfadRopaDTO(articulosRopa);
		
		XMLOfadDTO ofad = new XMLOfadDTO(ropa,hogar);
		
		parser.generateXmlAndSave(ofad);
	}	
	
	
}